Lampen.ino

					
#include "Lampen.h"

/* Initialisation of the Traffic Light structure, written just to reduse the amount of code on the first page
 * 
 */
void init_ampel(ampel_t* Ampel)
{
  
  // Sub structure initialisation. Pin Numbers
  Ampel->ein_ampel[0].rot = 13;
  pinMode(Ampel->ein_ampel[0].rot, OUTPUT);
  Ampel->ein_ampel[0].gelb = 12;
  pinMode(Ampel->ein_ampel[0].gelb, OUTPUT);
  Ampel->ein_ampel[0].grun = 11;
  pinMode(Ampel->ein_ampel[0].grun, OUTPUT);
  Ampel->ein_ampel[0].current_state = ROT;
  Ampel->ein_ampel[0].future_state = ROT;
  Ampel->ein_ampel[0].ticks = 0;
  //Ampel->ein_ampel[0].grun_blinken = 0;
  
  Ampel->ein_ampel[1].rot = 10;
  pinMode(Ampel->ein_ampel[1].rot, OUTPUT);
  Ampel->ein_ampel[1].gelb = 9;
  pinMode(Ampel->ein_ampel[1].gelb, OUTPUT);
  Ampel->ein_ampel[1].grun = 8;
  pinMode(Ampel->ein_ampel[1].grun, OUTPUT);
  Ampel->ein_ampel[1].current_state = ROT;
  Ampel->ein_ampel[1].future_state = ROT;
  Ampel->ein_ampel[1].ticks = 0;
  //Ampel->ein_ampel[1].grun_blinken = 0;
  
  Ampel->ein_ampel[2].rot = 5;
  pinMode(Ampel->ein_ampel[2].rot, OUTPUT);
  Ampel->ein_ampel[2].gelb = 7;
  pinMode(Ampel->ein_ampel[2].gelb, OUTPUT);
  Ampel->ein_ampel[2].grun = 6;
  pinMode(Ampel->ein_ampel[2].grun, OUTPUT);
  Ampel->ein_ampel[2].current_state = ROT;
  Ampel->ein_ampel[2].future_state = ROT;
  Ampel->ein_ampel[2].ticks = 0;
  //Ampel->ein_ampel[2].grun_blinken = 0;

  Ampel->ein_ampel[3].rot = 2;
  pinMode(Ampel->ein_ampel[3].rot, OUTPUT);
  Ampel->ein_ampel[3].gelb = 4;
  pinMode(Ampel->ein_ampel[3].gelb, OUTPUT);
  Ampel->ein_ampel[3].grun = 3;
  pinMode(Ampel->ein_ampel[3].grun, OUTPUT);
  Ampel->ein_ampel[3].current_state = ROT;
  Ampel->ein_ampel[3].future_state = ROT;
  Ampel->ein_ampel[3].ticks = 0;
  //Ampel->ein_ampel[3].grun_blinken = 0;

  Ampel->ein_ampel[4].rot = 14;
  pinMode(Ampel->ein_ampel[4].rot, OUTPUT);
  Ampel->ein_ampel[4].gelb = 15;
  pinMode(Ampel->ein_ampel[4].gelb, OUTPUT);
  Ampel->ein_ampel[4].grun = 16;
  pinMode(Ampel->ein_ampel[4].grun, OUTPUT);
  Ampel->ein_ampel[4].current_state = ROT;
  Ampel->ein_ampel[4].future_state = ROT;
  Ampel->ein_ampel[4].ticks = 0;
//  Ampel->ein_ampel[4].grun_blinken = 0;
  
  // Timings
  Ampel->main_state_time = AMPEL_MAIN_TIME; // mS
  Ampel->transit_state_time = AMPEL_TRANSIT_TIME; // mS
 // Ampel->blink_state_time = AMPEL_BLINK_TIME; // mS

  Ampel->curr_phase = 0;
}